/**
 * @ClassName RecursionDemo01
 * @Description 递归
 * @Author Li
 * @Date 2022/8/10 9:51
 * @ModifyDate 2022/8/10 9:51
 * @Version 1.0
 */
public class RecursionDemo01 {
    public static void main(String[] args) {
        // a();
        b(1);
    }

    /*
     3.构造方法，禁止递归
     编译报错：构造方法时创建对象使用的，不能让对象一直创建下去
     */
    public RecursionDemo01() {
        // Demo01();
    }

    /*
     1.递归一定要有条件限定，保证递归能够停止下来，否则会发生栈内存溢出
     报错：Exception in thread "main" java.lang.StackOverflowError
     */
    private static void a() {
        System.out.println("执行a方法");
        a();
    }

    /*
     2.在递归中虽然有限定条件，但是递归次数不能太多，否则也会发生占内存溢出
     报错：Exception in thread "main" java.lang.StackOverflowError
     */
    private static void b(int i) {
        System.out.println(i);
        if (i == 20000) {
            return;
        }
        b(++i);
    }
}
